

// window.console.log.prototype = function (res) {
//     document.body.innerHTML += res
// }
$(function () {
    var oldcon = console.log
    window.console.log = function (res) {
        oldcon(res)
        document.body.innerHTML += res + '</br>'
    }

    // 1.2.1 一段"多态"的javascript代码
    console.log('// 1.2.1 一段"多态"的javascript代码')

    var makeSound = function (animal) {
        if (animal instanceof Duck) {
            console.log('嘎嘎嘎')
        } else if (animal instanceof Chicken) {
            console.log('咯咯咯')
        }
    }
    var Duck = function () { };
    var Chicken = function () { };


    makeSound(new Duck()) //console.log('嘎嘎嘎')
    makeSound(new Chicken())//console.log('咯咯咯')

    // 1.2.2 对象的多态性
    console.log('// 1.2.2 对象的多态性')

    var makeSound = function (animal) {
        animal.sound()
    }
    var Duck = function () { };
    Duck.prototype.sound = function () {
        console.log('嘎嘎嘎')
    }

    var Chicken = function () { };
    Chicken.prototype.sound = function () {
        console.log('咯咯咯')
    }

    makeSound(new Duck()) //console.log('嘎嘎嘎')
    makeSound(new Chicken())//console.log('咯咯咯')

    // 1.2.3 类型检查和多态
    // java 使用多态必须定义类型

    // 1.2.4 使用集成得到多态效果
    
})